Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] mysql_fetch_array mehrfach

Empfohlene Antworten

Veröffentlicht

hi und hallo,

gibt es eine möglichkeit in php, wie in ASP moveFirst, nach einem mysql_fetch_array($result) später das $result nochmal per mysql_fetch_array($result) auszulesen?

im moment gibt er mir beim zweiten auslesen des $results zwar per mysl_num_rows zurück dass einträge vorhanden sind, wenn ich aber mit mysql_fetch_array($result) das result auslesen möchte ist der zeiger offensichtlich schon am ende des result sets und die while schleife wird nicht einmal abgearbeitet...

was muss ich tun?

kann ich den zeiger wieder an den anfang des result sets stellen?

habs zwar nie probiert, aber darf man fragen wofür ?

wenn du die daten längerfristig brauchst, dann speichere sie in einem array

jo, ich hab das bis jetzt auch nicht gebraucht.komisch...

im endeffekt lese ich termindaten aus und speichere sie im result (das ja ein array ist oder???)

ich muss dann auf meiner seite an verschiedenen stellen mehrfach auf das result zugreifen, z.b. gibt es einen kalender der die daten ganau so benötigt wie an einer anderen stelle der seite die ausgabe einer eventliste....

irgendwie verstehe ich dich gar nicht... man speichert keine daten im result


$mein_array = array();
$result = mysql_query("select id, name from table");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$mein_array=$row['id'];
$mein_array=$row['name'];
}
[/PHP]

und jetzt kannst du mit $mein_array machen und tun was du willst ...

jupp, das versteh ich schon, aber wieso geht denn folgendes nicht?


$result = mysql_query("select id, name from table"); 


while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 

  //schreibe kalenderZeilen

} 


//jetzt machmal zwischendurch was lustiges

.

.

.

//und jetzt evtl wie in ASP "moveFirst" um an den anfang des results zu springen


while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 

  //gib mir events aus

}

wäre halt weniger aufwand und komfortabler als mit arrays finde ich

definierst Du vielleicht beim connectionaufbau was für einen Cursor die DB verwenden soll ?

unterstützt dein rdbms vielleicht nur einen move-forward-cursor ?

gruss

definierst Du vielleicht beim connectionaufbau was für einen Cursor die DB verwenden soll ?

unterstützt dein rdbms vielleicht nur einen move-forward-cursor ?

gruss

also nicht dass ich wüsste. ich mache im endeffekt nichts anderes als:

mysql_connect($dbhost,$dbuser,$dbpass) or die ("Leider ist ein Datenbankfehler aufgetreten. Bitte versuchen Sie es später noch einmal.");


mysql_select_db($dbname) or die ("Leider ist ein Datenbankfehler aufgetreten. Bitte versuchen Sie es später noch einmal.");

und vorher definiere ich halt die host, db und user variablen.

sollte ich wohl cursor definieren? kann ich damit dann zeiger auf results wieder an den anfang schieben? oder was genau mache ich damit?

vielen dank schonmal


$result = mysql_query("select id, name from table"); 


while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 

  //schreibe kalenderZeilen

} 


//jetzt machmal zwischendurch was lustiges

.

.

.

//und jetzt evtl wie in ASP "moveFirst" um an den anfang des results zu springen

[b]mysql_data_seek($result, 0);[/b]


while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 

  //gib mir events aus

}

Returns an array that corresponds to the fetched row and moves the internal data pointer ahead.

du bist einfach klasse. danke!!

[snip]


$mein_array = array();
$result = mysql_query("select id, name from table");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$mein_array=$row['id'];
$mein_array=$row['name'];
}
[/PHP]

und jetzt kannst du mit $mein_array machen und tun was du willst ...

Jo, nur das wohl nicht viel drin stehen wird, außer dem letzten Ergebnis von mysql_fetch_array.

Es müßte doch wohl

$mein_array[] = $row["id"];

...

lauten.

Desweiteren kann man auch direkt mysql_fetch_assoc benutzen.

Nur mal so, um das nicht so stehen zu lassen.

gruss vom pelz

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.