Avatar billede matz Nybegynder
04. september 2007 - 10:46 Der er 7 kommentarer og
1 løsning

Switch case virker ikke

Min switch via url virker ikke.

Kode:

index.php :

<?php

echo '<a href="index.php?page=index2">index2</a>';



switch($_GET['page'])
{
  case 'vis_produkt':
      include('vis_produkt.php');
      //break;
     
    case 'index2':
      include('index2.php');
      //break;
       
   
}


?>

index2.php :

<?php

//include_once 'connect.php';
include 'connect.php';

class Video {
  public $titel;
 
  function udskrivVideo() {
        echo "<p>".$this->titel." </p>";
  }
}


$test_1 = new Video();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT * FROM navn");
while($array = $test_2->a()){
  echo $array["fornavn"]."<br />";
  echo $array["efternavn"]."<br /><br />";
  echo '<a href="index.php?page=vis_produkt&id='. $array["id"] .'">Link</a><br>';
}
$test_2->close();
$test_1->udskrivVideo();


?>

connect.php :

<?php

class sql
{
    var $_conn;
    var $_queries = array();
    var $_activeQuery;
  /* husk at indsætte de rigtige oplysniner til din database */
    function connect(){
      $dbhost = "localhost";
      $database = "oop";
      $dbuser = "root";
      $dbpass = "";
   
      $this->_conn = mysql_connect($dbhost, $dbuser, $dbpass);
      mysql_select_db($database, $this->_conn);
    }
 
    function q($sql_query){
        $query = mysql_query($sql_query, $this->_conn) or die(mysql_error());
      if($query !== false){
          array_unshift($this->_queries, $query);
        $this->_activeQuery = $query;
        return true;
      }
      return false;
    }
  /* Fjernede $q fordi jeg ikke lige kunne regne ud hvorfor den var der */
    function a(){
        $array = null;
      if($this->_activeQuery){
          $array = mysql_fetch_array($this->_activeQuery, $this->_conn);
      }
      return $array;
    }
 
    function free(){
        if($this->_activeQuery){
          @mysql_free_result( $this->_activeQuery );
        $this->_activeQuery = array_shift( $this->_queries );
      }
    }
 
    function num_rows(){
        return mysql_num_rows($this->_activeQuery);
    }
 
    function close(){
      @mysql_close($this->_conn);
    }
}
?>

Fejl den siger:

Warning: mysql_fetch_array() [function.mysql-fetch-array]: The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in C:\wamp\www\test\connect.php on line 32
Avatar billede nielle Nybegynder
04. september 2007 - 11:37 #1
Prøv med denne:

connect.php :

<?php
class sql
{
    var $_conn;
    var $_queries = array();
    var $_activeQuery;
    /* husk at indsætte de rigtige oplysniner til din database */

    function connect() {
        $dbhost = "localhost";
        $database = "oop";
        $dbuser = "root";
        $dbpass = "";

        $this->_conn = mysql_connect($dbhost, $dbuser, $dbpass);
        mysql_select_db($database, $this->_conn);
    }
 
    function q($sql_query) {
        $query = mysql_query($sql_query, $this->_conn) or die(mysql_error());
        if ($query !== false) {
            array_unshift($this->_queries, $query);
            $this->_activeQuery = $query;
            return true;
        }
        return false;
    }

    /* Fjernede $q fordi jeg ikke lige kunne regne ud hvorfor den var der */
    function a() {
        $array = null;
        if ($this->_activeQuery) {
            $array = mysql_fetch_array($this->_activeQuery, $this->_conn) or die(mysql_error());
        }
        return $array;
    }
 
    function free() {
        if ($this->_activeQuery) {
            @mysql_free_result( $this->_activeQuery );
            $this->_activeQuery = array_shift( $this->_queries );
        }
    }
 
    function num_rows() {
        return mysql_num_rows($this->_activeQuery);
    }

    function close() {
        @mysql_close($this->_conn);
    }
}
?>
Avatar billede nielle Nybegynder
04. september 2007 - 11:37 #2
Iøvrigt skriver du noget om at du har slettet en $q - hvor henne har du gjort det?
Avatar billede matz Nybegynder
04. september 2007 - 11:45 #3
Det virker ikke. $q er fjernet fra her:

function a(HER) {

Hvis jeg sætter $q ind der så skriver den denne fejl:

Warning: Missing argument 1 for sql::a(), called in C:\wamp\www\test\index2.php on line 19 and defined in C:\wamp\www\test\connect.php on line 29

Warning: mysql_fetch_array() [function.mysql-fetch-array]: The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in C:\wamp\www\test\connect.php on line 32
Avatar billede mcardle Nybegynder
04. september 2007 - 12:01 #4
$q skal være der og så skal du sende den med:

$test_2->q("SELECT * FROM navn");
while($array = $test_2->a(HER!!! $test_2->q)){
Avatar billede matz Nybegynder
04. september 2007 - 12:06 #5
mcardle

Hvad skal der stå i "HER!!!" ?
Avatar billede matz Nybegynder
04. september 2007 - 12:43 #6
Det virker nu, ændrede dette her:

$array = mysql_fetch_array($this->_activeQuery, $this->_conn);

til

$array = mysql_fetch_array($this->_activeQuery)
Avatar billede mcardle Nybegynder
04. september 2007 - 12:59 #7
Hvorfor laver du din sql-connection til en klasse, når du ikke kan finde ud af at bruge den. Du har spurgt til denne her klasse minimum 5 gange nu og du sletter og putter nyt ind hele tiden.

Bare en tanke. ;o)

//mcardle
Avatar billede matz Nybegynder
04. september 2007 - 13:29 #8
Jeg prøver at forstå den ;) Men det er lidt svært når man ikke er inde i det. Man skal jo lære det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester